import java.util.List;

/**
 * @author xiakf
 * @date: 2021/10/28 11:18
 * @description:
 */
public class Sort {

    private static Integer[] arr ={8,2,5,9,7};

    public static void main(String[] args) {
        insertSort1(arr);
        System.out.println(arr);
    }


    /**
     * 从某个数为界,左边为已排序右边未排序,将这个数插入到合适的地方
     * @param arr
     */
    public static void insertSort1(Integer[] arr){
        for (int i=1;i<arr.length;++i){
            int temp=arr[i];
            int j=0;
            for (j=i-1;j>=0;j--) {
                if (arr[j]>temp) {
                    arr[j+1]=arr[j];
                }else {
                    break;
                }
            }
            arr[j+1]=temp;

        }

    }

    /**
     * 每次外层循环都将最小数推到一边
     * @param arr
     */
    public static void bubbleSort1(Integer[] arr){
        for (int i=0;i<arr.length-1;i++){
            for (int j=0;j<arr.length-1-i;j++){
                Integer temp;
                if (arr[j]<arr[j+1]){
                    temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
    }

    public static void bubbleSort2(Integer[] arr){
        for (int i=0;i<arr.length-1;i++){
            int temp=0;
            for (int j=0;j<arr.length-1-i;j++){
                if (arr[j]>arr[j+1]){
                    temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }


    }


    /**
     * 每次外层循环都选出一个最小数
     * @param arr
     */
    public static void chooseSort1(Integer[] arr){
        for (int i=0;i<arr.length;i++){
            // 最小元素的下标
            int min = i;
            for (int j=i+1;j<arr.length;j++) {
                if (arr[j]<arr[min]) {
                    min=j;
                }

            }
            int temp=arr[i];
            arr[i]=arr[min];
            arr[min]=temp;
        }


    }


}
